AWS CDKとGitHub ActionsではじめるInfrastructure as CodeのCI/CD #devio2022
こんにちは。MADグループのきんじょーです。
Developers.IO 2022 〜技術で心を揺さぶる3日間〜 にて、「AWS CDKとGitHub ActionsではじめるInfrastructure as CodeのCI/CD」というテーマでお話しさせていただきました。
IaCを導入しても、デプロイを手動で行っている場合、IaCのメリットを最大限に引き出せていない可能性があります。 このセッションでは、IaC + CI/CDの必要性と、構築にあたって検討すべき事項の説明、そして最後にサーバレスAPIの事例をもとにデプロイパイプラインの具体例についてご紹介させていただきました。
動画
スライド
想定する聴講者
- IaCをこれから導入しようとしている人
- IaCは導入したがデプロイは手動で行っている人
- IaCとCI/CDを構築・運用しているが、運用を見直したい人
セッション概要
Infrastracture as Code(IaC)はCI/CDに乗せて初めて最大限の効果を発揮します。 IaCとCI/CD環境構築に向けて、ツール選択やブランチ戦略といった検討事項を説明し、AWS CDKとGitHub Actionsを用いて具体的なデプロイパイプラインの構成例をご紹介します。
目次
1. なぜIaCはCI/CDに乗せるべきなのか
IaCで得られる様々なメリットは、人の手を介してデプロイをしている限り、保証されない可能性があります。さらに、CI/CDに載せることで監査対応や引継ぎが楽になったり、自動テストを導入して開発効率を上げることができます。
このパートではこれらの点について、とある手動デプロイの例を元に説明させていただきました。
一度きりのデプロイで、それ以降更新がないようなものであれば、CLIやマネジメントコンソールでIaCをデプロイしても良いですが、継続的に更新が必要な場合、是非CI/CDまで構築をご検討ください。
2. どうやってIaC + CI/CDを構築していくのか
このパートでは、IaCとCI/CDを導入するにあたり検討が必要な事項を以下のポイントにフォーカスしてお話ししています。
- どのIaCツールを使う?
- リポジトリ・CIツールは何を選ぶ?
- アプリとインフラは分ける?
- ブランチ戦略はどうする?
これからIaCを導入しようと考えている方は技術選定や開発の共通基盤構築のヒントに、すでに導入済みの方も今一度ご自身のチームの運用を見直すきっかけになっていただければ幸いです。
3. IaC + CICD構成の具体例
最後に、Lambda + API GatewayのサーバレスAPIをCDKでIaC化してGitHub Actionsでデプロイするというシナリオで、デプロイパイプラインの具体例を説明させていただきました。
ブランチ戦略に何を採用し、どうやってデプロイパイプラインを発火するかという問題は、継続的な開発とデプロイを回していく上で重要な検討事項です。 このパートで例に挙げている、タグ付けとGitHubのReleaseベースでパイプラインを発火する方法は、運用が単純かつデプロイの履歴やリリースノートもGitHubに残すことができ、非常にオススメしたいので是非ご確認ください。
最後に
IaCはCI/CDに乗せることで、最大限の効果を引き出すことができます。 このセッションを見ていただいた後に、もし継続的にインフラの変更が必要であれば、IaCだけではなくCI/CDまで併せて構築しようと思っていただけたなら嬉しいです。
本セッションではIaCはAWS CDK、CI/CDはGitHub Actionsにフォーカスしてお話をさせていただきましたが、みなさんの組織やチームにあった最適なツールやデプロイ戦略を選んで、より快適なデプロイライフをお過ごしください。
以上。MADグループのきんじょーでした。